#!/usr/bin/env python
# -*- coding:utf-8 -*-


from flask import Flask, render_template, request, redirect, session,escape


app = Flask(__name__)  # flask 对象

shengjilis = {
    'guangdong': {'广州市': '440100', '韶关市': '440200', '深圳市': '440300', '珠海市': '440400', '汕头市': '440500', '佛山市': '440600',
              '江门市': '440700', '湛江市': '440800', '茂名市': '440900', '肇庆市': '441200', '阳江市': '441700'},

    'hubei': {'武汉市': '420100', '黄石市': '420200', '十堰市': '420300',  '宜昌市': '420500', '襄阳市': '420600',
               '鄂州市': '420700', '荆门市': '420800', '孝感市': '420900', '荆州市': '421000', '黄冈市': '421100'},

    'jiangxi': {'南昌市': '360100', '景德镇市': '360200', '萍乡市': '360300', '九江市': '360400', '新余市': '360500', '鹰潭市': '360600',
                 '赣州市': '360700', '吉安市': '360800', '宜春市': '360900', '抚州市': '361000', '上饶市': '361100'},

    'hunan': {'长沙市': '430100', '株洲市': '430200', '湘潭市': '430300', '衡阳市': '440400', '邵阳市': '430500', '岳阳市': '430600',
              '常德市': '430700', '张家界市': '430800','益阳市':'430900','郴州市': '431000'},

    'jiangsu': {'南京市': '320100', '无锡市': '320200', '徐州市': '320300', '常州市': '320400', '苏州市': '320500',
                     '南通市': '320600', '连云港市': '320700', '淮安市': '320800', '盐城市': '320900', '扬州市': '321000',
                     '镇江市': '321100', '泰州市': '321200'},

    'fujian': {'厦门市': '350200', '莆田市': '350300', '三明市': '350400', '泉州市': '350500', '漳州市': '350600', '南平市': '350700',
               '龙岩市': '350800', '宁德市': '350900'},
    'yunnan': {'昆明市': '530100', '曲靖市': '530300', '玉溪市': '530400', '保山市': '530500', '昭通市': '530600','丽江市': '530700', 
    			'普洱市': '530800', '临沧市': '530900'}
}
app.config.from_object("settings.Config")  # 配置文件存放


# 登录
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    user = request.form.get('user')
    pwd = request.form.get('pwd')
    # 账户名密码
    if user == 'admin' and pwd == '123':
        # 用户信息放入session
        session['user_info'] = user

        return redirect('/index')  # 重定向
    else:
        return render_template('login.html', msg='登录失败')


# ip查询
@app.route('/ip_query')
def ip_query():
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')
    # 查询ip
    from ipdw import ipdw
    city_name = request.args.get('name')
    if not city_name:
        return render_template('ip_query.html')
    data = ipdw(city_name)
    if not data:
        return render_template('ip_query.html', msg='输入有误，请重试')
    return render_template('ip_query.html', jg=data)


# 景点查询
@app.route('/jingdian')
def jingdian():
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')
    from jingdian import jingdian
    keywords = request.args.get('keywords')
    if not keywords:
        return render_template('jingdian.html')
    data = jingdian(keywords)
    if not data:
        return render_template('jingdian.html', msg='输入有误，请重试')
    return render_template('all_results.html', jg=data)



# 天气查询
@app.route('/weather/<username>')
def weather(username):
    from cs import cscx
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')

    # 去省级列表拿数据
    a1 = shengjilis.get(str(username))  # 城市对应表
    lis = []  # 城市表
    for k in a1.keys():
        lis.append(k)
    # 获取查询数据，没有默认第一个
    city_name = request.args.get('city')
    # 初始页面 ，默认第一个
    if not city_name:
        data_list = cscx(a1[lis[0]])  # 城市天气数据
        today = data_list[0]
        future = data_list[1:]
        return render_template('weather.html', city_name=lis[0], future=future, today=today, city=lis,
                               username=username)

    # 选择后执行
    city = a1.get(city_name)
    data_list = cscx(city)
    today = data_list[0]
    future = data_list[1:]
    return render_template('weather.html', city_name=city_name, future=future, today=today, city=lis, username=username)


# 主页
@app.route('/index')
def index():
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')

    return render_template('index.html')


# 注销
@app.route('/logout')
def logout():
    # 删除信息
    del session['user_info']
    # 跳转登录
    return redirect('/login')

# 跳转主页
@app.route('/')
def logo():

    # 跳转
    return redirect('/login')

@app.route('/viewlog')
def view_the_log():
    """用户日志"""
    contents = []
    with open('ip.log','r') as log:
        for line in log:
            contents.append([])
            for item in line.split('|'):
                contents[-1].append(escape(item))
    len(contents)
    titles = ('用户提交','远程地址','访问代理','用户结果')
    return render_template('viewlog.html',
                           the_title='日志系统',
                           the_row_title=titles,
                           the_data=contents)


if __name__ == '__main__':
    app.run()
